using System;

namespace Needle.Core {

    /// <summary>
    /// Base exception for all the exceptions in the Needle library.
    /// </summary>
    [Serializable]
    public class NeedleException : Exception {

        /// <summary>
        /// initializes a new instance of NeedleException.
        /// </summary>
        public NeedleException() { }

        /// <summary>
        /// initializes a new instance of NeedleException.
        /// </summary>
        public NeedleException(string message) : base(message) { }

        /// <summary>
        /// initializes a new instance of NeedleException.
        /// </summary>
        public NeedleException(string message, Exception inner) : base(message, inner) { }

        /// <summary>
        /// initializes a new instance of NeedleException.
        /// </summary>
        protected NeedleException(
          System.Runtime.Serialization.SerializationInfo info,
          System.Runtime.Serialization.StreamingContext context)
            : base(info, context) { }

    }

}
